diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts
index 07b4af4..f71fa24
--- a/arch/arm/boot/dts/rk3288-tinker.dts
+++ b/arch/arm/boot/dts/rk3288-tinker.dts
@@ -175,10 +175,83 @@
 		status = "okay";
 	};

+	cpu0_opp_table: opp_table {
+		compatible = "operating-points-v2";
+		opp-shared;
+
+		opp@600000000 {
+			opp-hz = /bits/ 64 <600000000>;
+			opp-microvolt = <900000>;
+		};
+		opp@816000000 {
+			opp-hz = /bits/ 64 <816000000>;
+			opp-microvolt = <1000000>;
+		};
+		opp@1008000000 {
+			opp-hz = /bits/ 64 <1008000000>;
+			opp-microvolt = <1050000>;
+		};
+		opp@1200000000 {
+			opp-hz = /bits/ 64 <1200000000>;
+			opp-microvolt = <1100000>;
+		};
+		opp@1416000000 {
+			opp-hz = /bits/ 64 <1416000000>;
+			opp-microvolt = <1200000>;
+		};
+		opp@1512000000 {
+			opp-hz = /bits/ 64 <1512000000>;
+			opp-microvolt = <1250000>;
+		};
+		opp@1608000000 {
+			opp-hz = /bits/ 64 <1608000000>;
+			opp-microvolt = <1300000>;
+		};
+		opp@1704000000 {
+			opp-hz = /bits/ 64 <1704000000>;
+			opp-microvolt = <1350000>;
+		};
+		opp@1800000000 {
+			opp-hz = /bits/ 64 <1800000000>;
+			opp-microvolt = <1400000>;
+		};
+		/* boot-only frequencies below */
+		opp@1896000000 {
+			opp-hz = /bits/ 64 <1896000000>;
+			opp-microvolt = <1425000>;
+			turbo-mode;
+		};
+		opp@1920000000 {
+			opp-hz = /bits/ 64 <1920000000>;
+			opp-microvolt = <1425000>;
+			turbo-mode;
+		};
+		opp@1992000000 {
+			opp-hz = /bits/ 64 <1992000000>;
+			opp-microvolt = <1450000>;
+			turbo-mode;
+		};
+		opp@2016000000 {
+			opp-hz = /bits/ 64 <2016000000>;
+			opp-microvolt = <1475000>;
+			turbo-mode;
+		};
+		opp@2040000000 {
+			opp-hz = /bits/ 64 <2040000000>;
+			opp-microvolt = <1475000>;
+			turbo-mode;
+		};
+		opp@2064000000 {
+			opp-hz = /bits/ 64 <2064000000>;
+			opp-microvolt = <1475000>;
+			turbo-mode;
+		};
+	};
 };

 &cpu0 {
 	cpu0-supply = <&vdd_cpu>;
+	operating-points-v2 = <&cpu0_opp_table>;
 };

 &gmac {
@@ -345,8 +345,8 @@
 			vdd_cpu: DCDC_REG1 {
 				regulator-always-on;
 				regulator-boot-on;
-				regulator-min-microvolt = <750000>;
-				regulator-max-microvolt = <1350000>;
+				regulator-min-microvolt = <712500>;
+				regulator-max-microvolt = <1500000>;
 				regulator-name = "vdd_arm";
 				regulator-ramp-delay = <6000>;
 				regulator-state-mem {
@@ -357,8 +357,8 @@
 			vdd_gpu: DCDC_REG2 {
 				regulator-always-on;
 				regulator-boot-on;
-				regulator-min-microvolt = <850000>;
-				regulator-max-microvolt = <1250000>;
+				regulator-min-microvolt = <712500>;
+				regulator-max-microvolt = <1500000>;
 				regulator-name = "vdd_gpu";
 				regulator-ramp-delay = <6000>;
 				regulator-state-mem {
@@ -652,6 +755,11 @@
 };

 &usb_otg {
+	/*
+	 * The otg controller is the only system power source,
+	 * so needs to always stay in device mode.
+	 */
+	dr_mode = "peripheral";
 	status= "okay";
 };

